package day02;
//数据类型的演示
public class DateTypeDemo {
    public static void main(String[] args) {
        //2)long:长整型,8个字节,-900万万亿多到900万万亿多
        /*long a = 25L;
        //long b = 10000000000;//编译错误,一百亿默认为int类型,但超出int
        long c = 10000000000L;//一百亿L为长整型直接量
        long d = 365L*24*60*60*1000;//去年一年所经历的毫秒数
        System.out.println(d);//31536000000

        long e = 1000000000*2*10L;
        System.out.println(e);//200亿
        long f = 1000000000*3*10L;
        System.out.println(f);//不是300亿
        long g = 1000000000L*3*10;
        System.out.println(g);//300亿
        */

        /*
    //1)int整型,4个字节,-21个多亿到21个多亿
        int a = 250;//250为证书直接量,默认为int类型
        //int b = 100000000000;//编译错误,100多亿默认为int类型,但超出范围
        //int c = 25.675;//编译错误,整型变量中只能装整数
        System.out.println(5/2);//2
        System.out.println(2/5);//0
        System.out.println(5.0/2);//2.5

        int d = 2147483647;//int的最大值
        d = d+1;
        System.out.println(d);//-214783648,发生溢出了
         */

        //3)double:浮点型,8个字节,很大很大很大
        /*double a = 29.213;//29.213为小数直接量默认为double类型
        float b = 289213F;//289213F为float类型直接量
        double c=3.0,d=2.9;
        System.out.println(c-d);//0.10000000000000009,发生舍入误差了;
        double e=5.0,f=4.9;
        System.out.println(e-f);//0.09999999999999964,误差无法控制;
         */
        //4)boolean:布尔型,1个字节
        //boolean a = true;//true为布尔型直接量
        //boolean b = false;//false为布尔型直接量
        //boolean c = 25.6;//编译错误,布尔型只能存储true或false

        //5)char:字符型,2个字节
        /*char c1 = '女';
        char c2 = 'f';
        char c3 = '6';
        char c4 = ' ';
        //char c5 = 女;//编译错误,字符直接量必须放在单引号中
        //char c6 = '';//编译错误,必须有字符
        //char c7 = '19';//编译错误,只能装一个
        char c8 = 65;//0-65535之间
        System.out.println(c8);//'A',println()时会依据c8的类型来做输出
                               // 若c8为char类型,则以字符形式展示
                               //若c8为int类型则以数字展示
        char c9 = '\'';//通过\转义
        System.out.println(c9);
         */

        //类型间的转换:
        /*int a = 5;
        long b = a;//自动/隐式类型转换
        int c = (int)b;//强制类型转换

        long d = 5;//自动类型转换
        double e = 5;//自动类型转换
        System.out.println(e);//5.0

        long f = 10000000000L;
        int g =(int)f;
        System.out.println(g);//1410065408,强转可能发生溢出

        double h = 24.395838;
        int i =(int)h;
        System.out.println(i);//24,强转有可能丢失精度

         */
        byte b1 = 5;
        byte b2 = 3;
        byte b3 = (byte)(b1+b2);

        System.out.println(2+2);//4
        System.out.println('2'+2);//52, 2+'2'的码50
        System.out.println('2'+'2');//100, '2'的码50+'2'的码50
        System.out.println('2');//2

        int a = '我';//看字符对应的码
        System.out.println(a);//'我'的码
        char b = 65;//看码相应的字符
        System.out.println(b);//A
    }
}
